package org.contact.web;

import java.io.PrintWriter;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.contact.model.dto.CuentaDTO;
import org.contact.service.CuentaService;
import org.contact.util.BaseUtil;
import org.contact.util.json.JSONArray;
import org.contact.util.json.JSONObject;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class CuentaController extends MultiActionController{
	
	private CuentaService cuentaService;
	public void setCuentaService(CuentaService cuentaService) {
		this.cuentaService = cuentaService;
	}
	
	public ModelAndView init(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		return new ModelAndView("CuentaMain");
	}
	
	@SuppressWarnings("unchecked")
	public void listarCuenta(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		JSONObject root = new JSONObject();
		PrintWriter out = response.getWriter();
		String filterStr = "{col:nombre,val:ABASTECIMIENTOS}";
		
		try {
			JSONArray array = new JSONArray();
			@SuppressWarnings("unused")
			List<CuentaDTO> list = null;
				JSONObject filter = new JSONObject(filterStr);
				list = cuentaService.listarTodos(null);
				//list = bancoService.listarTodos(filter.getJSONObjectMap());
				
				for (CuentaDTO cuentaDTO  : list) {
				 System.out.println("getNro_cuenta : "    + cuentaDTO.getNro_cuenta());
				 System.out.println("getTip_mone : "    + cuentaDTO.getTip_mone());
				 System.out.println("getTip_cuenta : "    + cuentaDTO.getTip_cuenta());
				 
				 
				}
				
			
		} catch (Exception e) {
			e.printStackTrace();
			logger.error(e);
			root.put("success", false);
			
		}
		out.print(root.toString());
		out.flush();
		out.close();
	}
	

	 public void guardarCuenta(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		JSONObject root = new JSONObject();
		PrintWriter out = response.getWriter();
		
		try {
			
			CuentaDTO cuenta = new CuentaDTO();
			cuenta.setId_cuenta(BaseUtil.getDefaultLong(1));
			//banco.setId_banco(null);
			cuenta.setNro_cuenta("12121212");
			
			//if(cuenta.getId_cuenta() == null)
				//cuentaService.insertar(cuenta);
			//else 
			cuentaService.actualizar(cuenta);
			
			root.put("success", true);
			
		} catch (Exception e) {
			e.printStackTrace();
			logger.error(e);
			root.put("success", false);
			
		}
		out.print(root.toString());
		out.flush();
		out.close();
	}
	
	
	public void obtenerCuenta(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		JSONObject root = new JSONObject();
		PrintWriter out = response.getWriter();
		
		try {
			JSONArray array = new JSONArray();
			CuentaDTO cuenta = cuentaService.obtenetXId(new CuentaDTO(BaseUtil.getDefaultLong(1)));
			
			 System.out.println("getNro_cuenta : "    + cuenta.getNro_cuenta());
									
//			array.put(new JSONObject(empresa));
//			root.put("success", true);
//			root.put("data", array);
			
		} catch (Exception e) {
			e.printStackTrace();
			logger.error(e);
			root.put("success", false);
		}
		out.print(root.toString());
		out.flush();
		out.close();
	}
	

	public void elimninarBanco(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		JSONObject root = new JSONObject();
		PrintWriter out = response.getWriter();
		System.out.println("entro a eliminar");
		try {
			cuentaService.eliminar(new CuentaDTO(BaseUtil.getDefaultLong(38)));
			root.put("success", true);
		} catch (Exception e) {
			e.printStackTrace();
			logger.error(e);
			root.put("success", false);
		}
		out.print(root.toString());
		out.flush();
		out.close();
	}

}
